package com.tongfusoft.document.manager.security.service;

import java.util.List;

import com.tongfusoft.da.pagehelper.PageInfo;
import com.tongfusoft.document.entity.Docs;
import com.tongfusoft.document.entity.RoleHasPrivileges;
import com.tongfusoft.document.entity.RoleHasSecurities;
import com.tongfusoft.document.entity.SecurityGroup;
import com.tongfusoft.document.entity.Users;

public interface IDocumentSecurityGroupService {

	/**
	 * 新增安全组
	 * @param group
	 * @param Users
	 */
	public void createSecurityGroup(SecurityGroup group, Users Users);
	
	/**
	 * 删除安全组
	 * @param group
	 * @param Users
	 */
	public void deleteSecurityGroup(SecurityGroup group, Users Users);
	
	/**
	 * 编辑安全组
	 * @param group
	 * @param Users
	 */
	public void updateSecurityGroup(SecurityGroup group, Users Users);
	
	/**
	 * 
	 * @param groupId
	 * @return
	 */
	public RoleHasSecurities powerByRpId(String rpId);
	
	/**
	 * 根据组设定角色权限
	 * @param privileges
	 * @param Users
	 */
	public void updatePower(RoleHasSecurities privileges,Users Users);
	
	/**
	 * 删除组和角色关系
	 * @param privileges
	 * @param Users
	 */
	public void deleteRoleHasSecurities(RoleHasSecurities privileges,Users Users);
	/**
	 * 获取安全组详细
	 */
	public SecurityGroup getSecurityGroup(SecurityGroup group);
	/**
	 * 所有安全组
	 *
	 * */
	public List<SecurityGroup> groupList(SecurityGroup group);
	/**
	 * 安全组表值表格
	 *
	 * */
	public PageInfo<SecurityGroup> groupPageTable(int pageIndex, int pageSize,
			SecurityGroup group);
	/**
	 * 添加角色安全组权限
	 *
	 * */
	public void addRoleHasGroup(RoleHasSecurities roleHasSecurities,Users user);
	/**
	 * 编辑角色安全组权限
	 *
	 * */
	public void updateRoleHasGroup(RoleHasSecurities roleHasSecurities,Users Users);
	/**
	 * 角色安全组权限分页显示
	 *
	 * */
	public PageInfo<RoleHasSecurities> roleHasSecuritiesPageTable(int pageIndex,
			int pageSize, RoleHasSecurities roleHasSecurities);
	/**
	 * 通过groupId删除角色安全组权限
	 *
	 * */
	public void delRoleHasGroup(String groupId);
	
	/**
	 * 删除安全组前判断安全组是否已被使用
	 * */
	public List<Docs> isGroupByDoc(String groupId);
	
}
